/**************************************************************************************************
* Title: SumLogicManager.h
* Author: Gael Huber
* Description: Primary driver for all game/engine-related logic. This is the primary hub for making
*	modifications to other systems and manipulating program run state.
**************************************************************************************************/
#ifndef __SUMLOGICMANAGER_H__
#define __SUMLOGICMANAGER_H__

#include "SumSingleton.h"

class LogicManager : public Singleton<LogicManager> {
public:
	// Constructor
	LogicManager(void);

	// Destructor
	virtual ~LogicManager(void);

	// Return the singleton
	inline static LogicManager& getSingleton(void)
	{
		assert(singleton);
		return *singleton;
	}

	// Get the singleton pointer
	inline static LogicManager* getSingletonPtr(void)
	{
		return singleton;
	}

	// Start up the logic manager
	void startUp(void);

	// Shut down the logic manager
	void shutDown(void);

	// Updates main game logic
	void update(void);

private:

};

#endif